#include"thread.hpp"
using namespace td;

  
  class Multiply{
    public:
        Multiply(){ }
      void  operator()(int i) {
        cout<< i*i<<endl;
        }
        ~Multiply(){}
    private:
  
  };
 
int main(){
    //测试单参数单线程执行：
  //    int a=5;
  //   Thread<int> Td([](int cnt){
  //       cout<<cnt<<endl;
  //       while(cnt--) {
  //           cout<<"thread running"<<endl;
  //           sleep(1);
  //       }
  //   },a);
  //   Td.start();
  //   sleep(6);
  //   Td.stop();
  //  // Td.detach();

  //   Td.join();

    //测试单参数多线程执行：
  //   vector<Thread<int>> vt;
  //   for(int i=0;i<10;i++){
  //       Thread<int> Td([](int cnt){
  //       while(cnt--) {
  //           cout<<"thread running"<<endl;
  //           sleep(1);
  //       }
  //   },1);
  // vt.push_back(Td);
    
  //   }
  //   for(int i=0;i<vt.size();i++){
  //       Thread<int>Td=vt[i];
  //       Td.start();
  //      sleep(2);
  //      Td.stop();
  //      //Td.detach();
  //       Td.join();
  //   }

  //测试线程传类对象：
   class  Multiply m;
    Thread<int> Td(m,5);
    Td.start();
    sleep(6);
    Td.stop();
   // Td.detach();
    Td.join();

}